package com.dzm.mapper;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dzm.entity.Emp;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dzm.vo.EmpVo;
import com.dzm.vo.SearchVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author Dzm
 * @since 2024-08-17
 */
public interface EmpMapper extends BaseMapper<Emp> {

    List<EmpVo> searchEmp(@Param("star") Integer star, @Param("pageSize") Integer pageSize, @Param("searchVo") SearchVo searchVo);

    EmpVo findById(@Param("eid") String eid);

    void updateEmp(EmpVo empVo);

    void updateWork(EmpVo empVo);

    void addEmp(@Param("eid") String eid, @Param("empVo") EmpVo empVo);

    void addWork(@Param("eid") String eid, @Param("empVo") EmpVo empVo);

    Integer count();

    void removeEmp(@Param("eids") List<String> eids);

    void removeWork(@Param("eids") List<String> eids);

    Integer useCount(SearchVo searchVo);

    IPage<EmpVo> searchByWrapper(Page<Object> page, @Param(Constants.WRAPPER) QueryWrapper<EmpVo> wrapper);
}
